package com.zhl.service;

import com.zhl.model.User;
import com.zhl.utils.page.PageEntity;

import java.util.List;
import java.util.Map;

public interface UserService {


    /**
     * 根据用户名找用户
     * @param username
     * @return User user
     */
    public User findUserByName(String username);

    /**
     * 查看所有用户
     * @return List<User>
     */
    PageEntity<Map<String, Object>> findAll(String realName, Integer id,Integer currPage);

    /**
     * 注册用户
     * @param user
     * @return boolean
     */
    boolean saveUser(User user);

    /**
     * 查找部门和用户信息
     * @param id
     * @return Map<></>对象
     */
    Map<String,Object> findUserAndDeptById(Integer id);

    /**
     * 查看用户信息
     * @param id
     * @return map<>对象
     */
    Map<String,Object> findUserInfo(Integer id);

    /**
     * 更新登录时间
     * @param user
     * @param id
     */
    void updateUser(User user,Integer id);

    /**
     * 根据id查找用户
     * @param id
     * @return User 对象
     */
    User findUserById(Integer id);

    /**
     * 根据id修改被看数
     * @param id
     * @return
     */
    boolean updateLookById(Integer id);

    /**
     * 根据id查找收藏文章id
     * @param id
     * @return list集合
     */
    List<Integer> findUserCollectById(Integer id);

    /**
     * 根据文章id和用户id查看关注的伙伴是否关注该文章
     * @param uId
     * @param aId
     * @return list<user>对象
     */
    List<User> findFocusFavoriteById(Integer uId,Integer aId);

    /**
     * 根据部门id查找学生
     * @param deptId
     * @return List<User>对象
     */
    List<User> findUserByDeptId(Integer deptId);

    List<Map<String,Object>> findFocus(Integer id);
}
